package com.itheima.service;

import com.alibaba.dubbo.config.annotation.Service;
import com.itheima.dao.MeunDao;
import com.itheima.pojo.Menu;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service(interfaceClass = MeunService.class)
@Transactional
public class MeunServiceimpl implements MeunService{

    @Autowired
    MeunDao meunDao;

    @Override
    public List<Map<String, Object>> findMeun(String username) {
        List<Map<String, Object>> list = new ArrayList<>();
        List<Integer> ids = meunDao.findByNameFHF(username);
        if (ids != null){
            for (Integer id : ids){
                list = meunDao.findByMenuFHF(id);
                for (Map map : list){
                    Integer parentMenuId = (Integer) map.get("id");
                    List<Map<String, Object>> childMenu = meunDao.findChildMenu(parentMenuId);
                    map.put("children",childMenu);
                    map.remove("id");
                }
            }
        }

        return list;
    }

//    @Override
//    public List<Map<String, Object>> findMeun(String username) {
//        List<Map<String, Object>> maps = new ArrayList<>();
//
//        List<Menu> list = meunDao.findMeunone(username);
//        List<Menu> meuntwo2 = meunDao.findMeuntwo2(username);
//        List<Menu> meuntwo3 = meunDao.findMeuntwo3(username);
//        List<Menu> meuntwo4 = meunDao.findMeuntwo4(username);
//        List<Menu> meuntwo5 = meunDao.findMeuntwo5(username);
//        List<Menu> meuntwo6 = meunDao.findMeuntwo6(username);
//
//        for (Menu menu : list){
//            Map<String,Object> map = new HashMap<>();
//            map.put("path",menu.getPath());
//            map.put("title",menu.getName());
//            map.put("linkUrl",menu.getLinkUrl());
//            if (menu.getPath().equals("2")){
//                List<Map<String, Object>> map2 = new ArrayList<>();
//                for (Menu m2:meuntwo2){
//                    Map<String,Object> mapmeun2 = new HashMap<>();
//                    mapmeun2.put("path",m2.getPath());
//                    mapmeun2.put("title",m2.getName());
//                    mapmeun2.put("linkUrl",m2.getLinkUrl());
//                    mapmeun2.put("children",null);
//                    map2.add(mapmeun2);
//                }
//                map.put("children",map2);
//            }
//            if (menu.getPath().equals("3")){
//                List<Map<String, Object>> map3 = new ArrayList<>();
//                for (Menu m3:meuntwo3){
//                    Map<String,Object> mapmeun3 = new HashMap<>();
//                    mapmeun3.put("path",m3.getPath());
//                    mapmeun3.put("title",m3.getName());
//                    mapmeun3.put("linkUrl",m3.getLinkUrl());
//                    mapmeun3.put("children",null);
//                    map3.add(mapmeun3);
//                }
//                map.put("children",map3);
//            }
//            if (menu.getPath().equals("4")){
//                List<Map<String, Object>> map4 = new ArrayList<>();
//                for (Menu m4:meuntwo4){
//                    Map<String,Object> mapmeun4 = new HashMap<>();
//                    mapmeun4.put("path",m4.getPath());
//                    mapmeun4.put("title",m4.getName());
//                    mapmeun4.put("linkUrl",m4.getLinkUrl());
//                    mapmeun4.put("children",null);
//                    map4.add(mapmeun4);
//                }
//                map.put("children",map4);
//            }
//            if (menu.getPath().equals("5")){
//                List<Map<String, Object>> map5 = new ArrayList<>();
//                for (Menu m5:meuntwo5){
//                    Map<String,Object> mapmeun5 = new HashMap<>();
//                    mapmeun5.put("path",m5.getPath());
//                    mapmeun5.put("title",m5.getName());
//                    mapmeun5.put("linkUrl",m5.getLinkUrl());
//                    mapmeun5.put("children",null);
//                    map5.add(mapmeun5);
//                }
//                map.put("children",map5);
//            }
//            if (menu.getPath().equals("6")){
//                List<Map<String, Object>> map6 = new ArrayList<>();
//                for (Menu m6:meuntwo6){
//                    Map<String,Object> mapmeun6 = new HashMap<>();
//                    mapmeun6.put("path",m6.getPath());
//                    mapmeun6.put("title",m6.getName());
//                    mapmeun6.put("linkUrl",m6.getLinkUrl());
//                    mapmeun6.put("children",null);
//                    map6.add(mapmeun6);
//                }
//                map.put("children",map6);
//            }
//            maps.add(map);
//        }
//
//        return maps;
//    }
}
